#include "sum_integers.hpp" // 包含待测试函数的头文件
#include "gtest/gtest.h"    // 包含Google Test框架的头文件
#include <vector>

// Google Test的入口点。
// 这是所有Google Test可执行文件都需要的标准main函数。
int main(int argc, char **argv) {
  // 初始化Google Test框架。它会解析命令行参数，并设置测试环境。
  ::testing::InitGoogleTest(&argc, argv);
  // 运行所有定义的测试。
  return RUN_ALL_TESTS();
}

// 定义一个测试套件（Test Suite）名为 'example'，其中包含一个测试用例 'sum_zero'。
TEST(example, sum_zero) {
  // 定义一个整数列表，其和为0。
  auto integers = {1, -1, 2, -2, 3, -3};
  // 调用待测试函数。
  auto result = sum_integers(integers);
  // 使用ASSERT_EQ断言验证结果是否等于预期值0。
  // 如果不相等，测试将立即失败，并终止当前测试函数。
  ASSERT_EQ(result, 0);
}

// 定义另一个测试用例 'sum_five'，属于 'example' 测试套件。
TEST(example, sum_five) {
  // 定义一个整数列表，其和为15。
  auto integers = {1, 2, 3, 4, 5};
  // 调用待测试函数。
  auto result = sum_integers(integers);
  // 使用ASSERT_EQ断言验证结果是否等于预期值15。
  ASSERT_EQ(result, 15);
}